마인크래프트 서버 환경 만들기(구글 클라우드) 2 서버 설정
✒️ 2025-05-15 15:12 내용 수정
- 마인크래프트 서버 환경 만들기(구글 클라우드) 1 VM인스턴스 설정에서 인스턴스와 네트워크 설정을 진행한 후 이제 서버에 접속해서 게임 서버를 추가한다.
- 서버를 구성하면서 참고한 자료들
root 설정과 사용자 추가
- 자료 1과 자료 2에선 root 설정과 서버 관리용 사용자 추가를 진행했다. 서버 내에서 마인크래프트 서버 관리 외의 다른 작업도 추가적으로 하거나 여러 사용자가 접근하는 경우라면 진행하는 것이 좋을 것 같다.
- VM 인스턴스에서 이전 작업에서 추가한 인스턴스를 SSH 연결을 통해 접속한다.
- 승인을 묻는 창이 뜨면 Authorize를 눌러 접속 승인을 한다.
sudo passwd root로 root의 비밀번호를 새로 지정한다.- Linux에선 비밀번호를 작성할 때 작성 내용이 안 보이므로 렉 걸린 상황이 아니다.
- 우분투(Ubuntu)#3. 우분투 관리자 이름 변경에서도 메모했듯 Ubuntu에선 유저 계정으로 접속한 후 관리자 계정을 활성화해야 한다.
- 유저 관리 명령어 및 파일#사용자 추가 및 삭제 참고.
su root또는su를 입력해 root 계정으로 전환한다.- 계정이 바뀌면 쉘에서 사용자 이름이 바뀐다.
adduser minecraft를 입력해 서버 파일을 관리할 사용자minecraft를 추가한다.- 비밀번호를 잊지 말고 잘 입력한다.
- 그 외의 정보는 그냥 Enter를 눌러 넘기고, Is the information correct는 y를 눌러 넘긴다.
패키지 설치
sudo apt update && apt upgrade로 ubuntu에 설치된 패키지들을 업데이트한다.- 이미 root 계정으로 접속한 상태라면
sudo를 안 붙여도 상관없다. - 중간에 Do you want to continue 가 뜨면
y를 입력해 계속 진행한다.
- 이미 root 계정으로 접속한 상태라면
- 서버 설치를 위한 패키지들을
sudo apt install wget apt-transport-https gnupg nano screen ufw git로 다운 받는다.- 마찬가지로 이미 root 계정이라면
sudo는 생략해도 된다. wget: 웹 서버로부터 컨텐츠를 가져오는 프로그램- 참고 자료 : 위키백과 Wget
apt-transport-https: HTTPS 프로토콜을 사용한 다운로드용 APT 전송 방식gnupg: 보안 프로그램- 참고 자료 : GnuPG
nano: Linux의 편집 프로그램screen: SSH 연결에 여러 shell 세션을 관리할 수 있는 프로그램, 이를 이용해서 SSH 연결을 종료해도 서버를 계속 가동할 수 있다.ufw: 데비안 계열 및 다양한 리눅스 환경에서 작동하는 방화벽 관리 프로그램. 간혹 기본 설치가 안되어ufw명령어를 사용할 수 없는 경우가 있으니 같이 설치하는 것이 좋다.- 참고 자료 : 위키백과 UFW
git: 분산 버전 관리 시스템
- 마찬가지로 이미 root 계정이라면
방화벽 설정
sudo ufw allow OpenSSH를 입력해 OpenSSH를 방화벽에서 허용하도록 설정한다.
sudo ufw allow 25565로 방화벽에서25565포트를 허용한다.
sudo ufw enable로 방화벽을 활성화하고,y를 눌러 방화벽 활성화를 계속 진행한다.
sudo ufw status로 방화벽 상태를 확인할 수 있다.
Java 설치
- JDK의 경우 현재 마인크래프트 버전을 지원하는 버전으로 다운 받아야 한다.
- 2024.09.15 기준 마인크래프트 최신 버전 1.21.1 버전을 지원하는 JDK는 21 버전 이상이다.
- 버전이 맞지 않는 경우 이후
java -jar BuildTools.jar --rev latest부분에서 서버 빌드와 JDK 버전이 맞지 않다는 에러가 발생하여 진행이 막힌다.
apt install openjdk-21-jdk -y로JDK 21버전을 다운 받는다.
java --version으로 현재 다운받은 Java 버전을 확인할 수 있다.
su - minecraft로minecraft사용자로 변경해주고, 현재 디렉터리의 위치를pwd로 확인하여minecraft사용자의 home 디렉터리인지 확인한다.- home이 아니라면
cd또는cd ~로 홈 디렉터리로 이동한다.
- home이 아니라면
mkdir buildtools && cd buildtools로 빌드 파일을 받을 디렉터리를 생성 및 이동한다.
wget -O BuildTools.jar https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar으로 웹서버로부터 빌드에 필요한 파일을 다운 받는다.
ls로 파일을 잘 다운 받았는지 확인하고java -jar BuildTools.jar --rev latest로BuildTools.jar파일을 실행한다.- 명령어 구문을 보면 최신 버전으로 서버 파일을 받는다.
- 여기서 다운 받으려는 서버의 최신 버전(마인크래프트의 최신 버전을 따라간다)과 이를 지원하는 Java(JDK) 버전이 맞지 않으면 진행되지 않는다.
Starting clone of ~구문이 안 뜨고 에러가 뜬다면 에러 문구를 확인하고 Java 버전을 맞게 다운 받았는지 확인한다.
- 정상적으로 과정이 끝나면 Success! 구문이 뜬다.
ls를 입력하면 새 파일들이 있다.
cd ~ && mkdir server && cd server로minecraft사용자의 home 디렉터리로 이동 후server라는 디렉터리를 만들어 해당 디렉터리로 이동한다.
mv ~/buildtools/spigot-1.21.1.jar ~/server/spigot.jar로~/buildtools/spigot-1.21.1.jar에 있던 파일을 현재server디렉터리에spigot.jar라는 파일로 이름을 변경하여 이동한다.
su또는su root로 root 계정으로 전환 후vi /etc/sudoers또는nano /etc/sudoers로/etc/sudoers파일을 연다.
- 화면을 조금 내려
root ALL=(ALL:ALL) ALL구문 아래에minecraft ALL=(ALL:ALL) ALL를 추가한다.vi로 열었다면i를 눌러 편집 모드로 바꿔 내용을 추가한 뒤ESC후:w!로 저장,:q로 종료nano로 열었다면 일반 메모장처럼 편집 후ctrl+s로 저장하고ctrl+x로 종료
exit로 root 계정을 빠져 나와 다시minecraft계정으로 돌아오거나,su minecraft로minecraft계정으로 전환한 뒤,sudo nano start.sh로 서버 실행 파일을 만든다.
- 파일에 아래 내용을 붙여 넣고
ctrl+s과ctrl+x로 종료한다.
-Xms는 최소 메모리,-Xmx는 최대 메모리 할당량으로, 현재 인스턴스에 맞게 설정한다.jar spigot.jar nogui부분에서 서버 파일을spigot.jar대신 다른 이름을 사용한다면 해당 파일의 이름에 맞게 수정한다.- 마인크래프트 서버 환경 만들기(구글 클라우드) 1 VM인스턴스 설정#VM 인스턴스 생성에서 16GB로 설정했다면 여기서 16GB보다 낮게 설정해야 서버 실행이 가능하다.
#!/bin/sh
java -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar spigot.jar nogui
sudo chmod +x start.sh로start.sh파일에 실행 권한을 추가하고,./start.sh로 서버를 실행한다.ls -lthr로 파일의 생성 시간과 권한 등을 확인할 수 있다.
- 서버가 자동으로 꺼지는데, 이는 EULA에 동의해야 하기 때문이다.
nano eula.txt로 파일을 열어false를true로 변경한 후 저장한다.
- 다시
./start.sh로 서버를 가동하면 서버가 동작한다.- 서버 실행 중에 문제가 생긴다면 에러 코드를 잘 확인하여 문제점을 찾아 해결해보자.
- SSH 접속을 종료하면 서버가 꺼지기 때문에
screen을 입력한 뒤./start.sh를 입력하면 SSH를 종료해도 서버가 돌아간다.
- 이제 서버에 접속하기 위해 마인크래프트를 서버와 동일한 버전으로 실행한다.
- VM 인스턴스에서 현재 인스턴스의 외부 IP를 복사한 뒤, 마인크래프트에서 멀티 플레이를 들어가 서버 추가 또는 직접 연결을 선택하여 서버 주소를
인스턴스외부IP:25565로 입력한 뒤 연결한다.
- 이상이 없다면 서버에 잘 연결된다.